{{tag>Xenial accessibilité clavier souris}}

----
======Xinput gestionnaire de périphériques======
**xinput** est un outil intégré à Ubuntu qui permet de gérer et de  configurer les périphériques d'entrée comme les souris et les claviers.
===== Configuration des boutons de la souris =====

Le principe est simple :
  * Récupérer l'identification de la souris,
  * Configurer les boutons,
  * Sauver la configuration.

===== Récupérer l'identification de la souris =====
Pour récupérer l'identifiant de sa souris, il suffit de lancer la commande suivante dans un [[:terminal]] : <code>xinput list</code>
Qui vous répondra quelquechose du genre :
<code bash>
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ HP Laser Mobile Mouse                   	id=10	[slave  pointer  (2)]
⎜   ↳ SynPS/2 Synaptics TouchPad              	id=13	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
...</code>
Dans la liste vous devez reconnaître votre souris par le nom du constructeur et son modèle. Repérer ensuite l'identifiant : id=X ou X est l'identifiant.

===== Détecter et configurer les boutons =====
Dans cette partie, vous devez avoir récupérer l'identifiant de votre souris que l'on appellera : <identifiant>\\
Le principe est d'acquérir les boutons avec la commande ''test'' et de les réassigner en fonction de ce que X11 attend.

Le tableau ci dessous corresponds à la configuration attendu de X11. Il vous suffit d'assigner les boutons en fonction de votre souris.

^Position^Nom du bouton^
|P1 	|Left click|
|P2 	|Middle click|
|P3 	|Right click|
|P4 	|Wheel up|
|P5 	|Wheel down|
|P6 	|Wheel left|
|P7 	|Wheel right|
|P8 	|Thumb1|
|P9 	|Thumb2|
|P10 	|ExtBt7|
|P11 	|ExtBt8 |

Entrer maintenant la commande suivante et appuyer sur les boutons de votre souris pour connaître leur numéro actuel :
<code bash>xinput test <identifiant> | grep "button press"</code>
Pour arrêter le test des boutons tapez au clavier : CTRL + c

Pour finir entrer la commande suivante pour reconfigurer votre souris :
<code bash>xinput set-button-map <identifiant> 1 P1 P2 P3 P4 P5 ...</code>
avec P1 P2 P3 ... les valeurs du tableau précédent correspondant avec les numéros de bouton de votre souris avec la commande précédente **xinput test**
  
Exemple simple :
  * L'identifiant = 9
  * Clic gauche = 1
  * Clic milieu = 3
  * Clic droit = 2

Alors la commande est : <code bash>xinput set-button-map 9 1 3 2</code>

===== Modifier la vitesse du double clic =====

<note important>À défaut d'un problème purement matériel, il peut être nécessaire de régler la vitesse du double-clic, surtout lorsque celui ci est trop rapide (phénomène du double-clic intempestif alors que l'on a effectué qu'un seul clic)

Parfois la possibilité de réglage disponible dans **Paramètres Système** >> **Souris & Pavé tactile** ne résout pas le problème (même en mettant au minimum)</note>

Après avoir récupérer l'identifiant de la souris, il suffit de lancer la commande suivante dans un [[:terminal]] avec la [[:commande_shell|commande]] suivante :
<code>xinput list-props '[ID de votre souris]'</code>
remplacerez **[ID de votre souris]** par l'ID trouvé à l'étape précédente.

Exemple pour une souris **Logitech Gaming Mouse G500**

<code>$ xinput list
⎡ Virtual core pointer                    	id=2	[master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer              	id=4	[slave  pointer  (2)]
⎜   ↳ Logitech G500                           	id=8	[slave  pointer  (2)]
⎜   ↳ Logitech G500                           	id=9	[slave  pointer  (2)]
⎣ Virtual core keyboard                   	id=3	[master keyboard (2)]
    ↳ Virtual core XTEST keyboard             	id=5	[slave  keyboard (3)]
    ↳ Power Button                            	id=6	[slave  keyboard (3)]
    ↳ Power Button                            	id=7	[slave  keyboard (3)]
    ↳   USB Keyboard                          	id=10	[slave  keyboard (3)]
    ↳   USB Keyboard                          	id=11	[slave  keyboard (3)]
    ↳ Eee PC WMI hotkeys                      	id=12	[slave  keyboard (3)]</code>

<note help>Je ne saurais expliquer pourquoi la souris est référencé deux fois</note>

8 et 9 sont les 2 tag ID de la souris. (En choisir un)

<note>les paramètres sont identiques pour les deux ID</note>

La [[:commande_shell|commande]] se présente alors comme ceci :

<code>xinput list-props 9</code>  

Cette commande fait apparaître la liste des options qui s'appliquent à votre souris. Recherchez le paramètre évoquant la vitesse de décélération de la souris : "//Device Accel Constant Deceleration//"

Exemple pour la **Logitech G500**

<code>$ xinput list-props 9
Device 'Logitech G500':
	Device Enabled (151):	1
	Coordinate Transformation Matrix (153):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (281):	0
	Device Accel Constant Deceleration (282):	1.000000
	Device Accel Adaptive Deceleration (283):	1.000000
	Device Accel Velocity Scaling (284):	10.000000
	Device Product ID (270):	1133, 49256
	Device Node (271):	"/dev/input/event3"
	Evdev Axis Inversion (285):	0, 0
	Evdev Axes Swap (287):	0
  ...</code>

La valeur par défaut pour la **Logitech G500** est **1.000000** (1.0) quelque soit l'ID choisit

À présent tapez la [[:commande_shell|commande]] suivante :

<code>xinput -xinput set-prop '[ID de votre souris]' '[N° de l'option]' [valeur]</code>

remplacer **[N° de l'option]** par le numéro trouvé à l'étape précédente et **[valeur]** par un nombre.
Cette commande attribue une nouvelle valeur à la vitesse de la souris (ou plus précisément à la décélération de la souris). Pour rester sur le cas de la **Logitech G500**, on peut mettre une valeur supérieur (ex: **1.5**) :

La [[:commande_shell|commande]] se présente alors comme ceci :

<code>xinput set-prop 9 282 1.5</code>
Il n'y a pas de retour particulier à attendre, vous pouvez tout de même vérifier que la nouvelle valeur a bien été appliquer en retapant la [[:commande_shell|commande]] suivante :

<code>xinput list-props 9</code>  

__Résultat:__

<code>$ xinput list-props 9
Device 'Logitech G500':
	Device Enabled (151):	1
	Coordinate Transformation Matrix (153):	1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
	Device Accel Profile (281):	0
	Device Accel Constant Deceleration (282):	1.500000
  ...</code>  

Normalement la souris retrouve une vitesse normale.

Il faut maintenant automatiser [[:commande_shell|commande]] à chaque démarrage du système.

Afficher les fichiers cachés (**CTRL+H**) de votre dossier personnel (ils commencent pat un point)

Rechercher le fichier "**.profile**" et effectuer un double-clic pour [[:tutoriel:comment_modifier_un_fichier|ouvrir le fichier]].
Recopier la commande à la fin du fichier et Enregistrer le fichier.

Pour appliquer [[:commande_shell|commande]] à tous les utilisateurs, éditez avec votre [[éditeur de texte]] et les [[:sudo|droits d'administration]] le fichier **/etc/profile**.

<code>sudo gedit /etc/profile</code>
Recopier la commande à la fin du fichier et Enregistrer le fichier.

__Vous pouvez aussi utiliser un script.__

<file bash>
#!/bin/bash
xinput --set-prop 9 "Device Accel Constant Deceleration" 1.5
exit 0;</file>

Enregistrer sous le nom "**Device Accel Constant Deceleration.sh**" rajouter **.sh** à la fin du nom de fichier n'est en rien obligatoire.

<note warning>Faites tout de même attention dans l'utilisation de script. Leur utilisation sans connaissance de votre part pourrait vous faire perdre de précieuses données.</note>

Puis exécutez la [[:commande_shell|commande]]:

<code>gnome-session-properties</code>

Si n'est pas présent, vous pouvez l'installer avec la [[:commande_shell|commande]] suivante : 

<code>sudo apt-get install gnome-session-bin</code>

Et ajoutez le script à la liste.
N'oubliez pas de rendre le script exécutable : 
<code>chmod +x /chemin/du/script</code>
Ou faites un clic droit sur son icône, et dans l'onglet "//Permissions//" des "//Propriétés//", cocher la case "//autoriser l'exécution du fichier comme un programme//".

===== Sauver la configuration =====
Pour que votre configuration soit enregistrée à chaque démarrage, il vous faudra modifier [[:xorg|xorg.conf]] comme expliqué sur la page [[:souris#En modifiant xorg.conf|souris]]. Ou encore utiliser une [[:souris#Avec une application tiers|application tiers]].

===== Interface graphique à Xinput =====
Vous pourrez trouvez une interface graphique à Xinput en téléchargeant le .zip à cette [[https://github.com/Max-E/xinput-ui/archive/master.zip|adresse]].
[[:archivage|Décompressez]] l'archive, puis exécutez le fichier ''xinput-ui.py'' contenu dans le dossier **xinput-ui-master**.
=====Voir aussi=====
  * [[:mpx|Utilisation avancée d'xinput]],
  * [[https://linux.die.net/man/1/xinput|les commandes xinput]],
  * Exemple de configuration sur [[http://www.mrericsir.com/blog/technology/using-an-evoluent-verticalmouse-4-on-linux|cette page]],
  * La page [[souris]].